<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        console.log("helloworld");
        let p1 = new Promise((resolve,reject)=>{
            console.log('调用执行函数。。。2');
            // 当执行函数被js引擎调用时候，回传入两个实参fulfilled跟rejected
            // resolve 是一个函数，作用时将p1的状态改编为fulfilled（成功状态）
            // reject 是一个函数，作用时将p1的状态改变为rejected（失败状态）

            // 在执行函数调用resolve函数 一个传有参数，跟没有传入参数
            // 在执行函数调用reject函数 一个传有参数，跟没有传入参数
            
            // reject();        //Promise {<rejected>: undefined}
            // reject(1234);    //Promise {<rejected>: 1234}
            // resolve();       //Promise {<fulfilled>: undefined}
            // resolve(1234);   //Promise {<fulfilled>: 1234}

            // 如果在执行函数中使用 throw 抛出一个错位
            // p1的状态为失败状态，输出的结果为这个抛出错误的值
            // throw new Error('出错了');
        })

        function test(fn){
            if(typeof fn !== 'function'){
                throw new Error('出错了');
            }
            fn();
        }
        test(123);
        console.log(p1);
    </script>
</body>
</html>